As shown in the digital video broadcast (DVB) system 100 of FIG. 1, a DVB transmitter 101 typically includes a video encoder 115 to encode video source information into a sequence of datagrams, an MPE-FEC (multi-protocol encapsulation with forward error correction) encoder 117 to generate a corresponding sequence of transport stream (TS) packets, a channel encoder 119 to encode channel error correction information, a modulator 121 to generate a modulated signal by impressing the information received from the channel encoder onto a carrier, an radio-frequency (RF) up-converter 123 to up-convert the modulated carrier to broadcast carrier frequency, and an antenna 125 to radiate radio-wave energy that corresponds to the transmitter output. As shown, the radio-wave energy is received at the antenna 131 of a counterpart DVB receiver 103 that includes, together with the antenna, a tuner 133 for selecting and down-converting a radio frequency channel of interest, a demodulator 135 for demodulating the signals received via the selected channel, an MPE-FEC decoder 139 for correcting errors at the link-layer, and an application processor 141 for performing source decoding to recover video and audio signals that are output to a display 143 and a speaker 145, respectively.
FIG. 2 illustrates a typical encoding operation performed by the transmit-side MPE-FEC encoder 117 of FIG. 1 to encapsulate internet-protocol (IP) datagrams 150, each having a header field and payload field, into one or more packets referred to as MPE sections 160. As shown, each MPE section 160, which includes header, payload and cyclic-redundancy-check (CRC, calculated from the MPE section header and payload) fields, is encapsulated into one or more transport stream (TS) packets 170, each having a header field and payload field, that are provided to the downstream transmitter stages for transmission via terrestrial DVB networks.
The DVB receiver 103 de-encapsulates contents of the received packets on the reception side, following exactly the reverse order in which the packet content is encapsulated. As shown in FIG. 1, the channel decoder 137 outputs channel-decoded transport stream (TS) packets to the MPE-FEC decoder, where IP datagrams are de-encapsulated by skipping the header and CRC of the MPE sections.
De-encapsulated IP datagrams are put into an MPE table 180, as shown in FIG. 3. The MPE table is a matrix with 255 columns and a programmable number of rows. IP datagrams are stored in the MPE table in a column-wise manner. That is, the first IP datagram is inserted into the first column of the table, starting with the first byte of the first datagram in the upper left corner of the matrix and going downwards to the first column. When the first column is full before the datagram ends, the datagram is continued at the top of the adjacent column.
In a typical implementation, the MPE table 180 is conceptually divided into two parts: an application data table 181 and a Reed-Solomon (RS) data table 183. The application data table 181 consists of the first 191 columns, and the RS data table 183 consists of the remaining 64 columns. IP datagrams, carried in MPE sections, are inserted into the application table 181 while RS data, carried in MPE-FEC sections, are inserted into the RS data table 183. When no sufficient IP datagrams and RS data are received, padding bytes and punctured RS data are inserted into the remaining space of the application data table 181 and RS data table 183, respectively.
Ideally, after forward error correction at the channel decoder and MPE-FEC decoder of a DVB receiver, the resulting datagrams delivered to the application processor should be error free. In practice, however, this is only true when the reception quality is sufficient to limit the number of errors in incoming packets to a tolerable threshold. Because modern DVB receivers are increasingly implemented in small, mobile devices, that have only a single small-form-factor antenna and that may be moving at a fast speed, sufficient signal reception quality cannot always be guaranteed. When signal quality suffers (e.g., due to fading, Doppler-effect, and impulsive noises) some datagrams may still contain errors, even after the error correction stages.
Referring to FIG. 1, to assist the application processor 141 of the DVB receiver 103 in performing error concealment and to avoid display disruption, a RS decoder is typically provided within the MPE-FEC decoder 139 to detect and correct errors within the contents of individual rows of the MPE table, referred to as codewords, and then indicate to the application processor whether the forwarded datagrams still contain errors after error correction. If a codeword has more errors than the RS decoder can correct, the RS decoder is generally unable to identify the specific byte or bit locations in error and instead indicates only that the codeword is corrupted.
In a typical implementation, the RS decoder is able to correct up to N/2 corrupted bits per codeword, where N is the number of parity bytes in the codeword. When provided with information that indicates the reliability/non-reliability of individual bytes of the codeword, referred to herein as erasure information, the number of corrupted bits corrected by the RS decoder may be doubled, from N/2 to N. More specifically, in the MPE-FEC decoder 139 of FIG. 1, incoming transport packets are recovered by a base-band processor that performs demodulation and channel decoding operations and thus is able to provide reliability information for each byte loaded into the MPE table. The reliability information is provided, along with the de-encapsulated datagram bytes, to the MPE-FEC decoder 139, which may then generate erasure bits that correspond to the individual datagram bytes.
Due to the virtual interleaving of the MPE table contents (i.e., column-wise data storage and row-wise RS decoding), erasure information obtained from the base-band processor is typically stored for a completely loaded MPE table before RS decoding is commenced. Recalling that the MPE table can store up to 255*1024 bytes of codeword, if one bit is used to represent the erasure information for each byte of an MPE frame, a 255 K-bit erasure memory 190 is needed to store erasure information for the complete MPE frame as shown in FIG. 3. As the MPE frame memory in many cases consumes a substantial portion of the total die area of an integrated-circuit (IC) DVB receiver, the need to store an additional bit per byte of MPE frame memory represents a significant additional die area penalty and corresponding increase in device cost.